

#ifndef GLOBALS_H
#define GLOBALS_H

#include <memory>

#include "../GLRenderer.h"

#include <list>
#include <mutex>

class Camera;

extern int g_num_threads;

extern Renderer* g_renderer;

class ViewModelState : public RenderState {
public:
	bool wireframe_mode;
	int grid_size;
	bool point_snap;
	bool render_in_process;
	std::mutex render_mtx;

	ViewModelState() : wireframe_mode(false), grid_size(16), render_in_process(false) {
		current_cam = nullptr;
		point_snap = true;
		for( int i = 0 ; i < 16; i++ )
		{
			binded_textures[i] = -1;
		}
	}
};

extern ViewModelState g_render_state;

//extern std::vector<unsigned char> g_pressed_keys;

extern double	g_cur_time,
				g_delta_time,
				g_prev_time,
				g_time_acc;

//extern HWND g_focused_window;

extern float move_vec[3];
extern float rot_vec[3];

#endif
